/**
 * static & noStatic
 */


public class Static2NoStatic {
    public int age = 18;
    public static String name = "bob";



    public static void main(String[] args) {
        // name 是静态的，所以可以直接访问。
        System.out.println(name);

        // age 不是静态的，不可以直接访问。
        // System.out.println(age); error见下


        // 非静态的字段， 必须使用 类的对象才能进行访问。
        Static2NoStatic noStatic = new Static2NoStatic();
        // System.out.println(Static2NoStatic.age); error见下
        System.out.println(noStatic.age);


        // 静态的字段， 可以同时使用类名和类的对象进行反问。
        System.out.println(Static2NoStatic.name);
        System.out.println(noStatic.name);


        /**
         * 总结： 类的对象可以访问静态和非静态的。
         *       类名可以访问静态的。
         *       一般的System都是使用的静态的变量， 这样可以直接访问。
         *
         * 报错：
         *      non-static variable age cannot be referenced from a static context
         *      不能在静态方法里面访问非静态变量。
         */

    }
}
